@echo off
echo Ubuntu桌面环境 - 存储空间清理脚本
echo.

REM 检查Docker是否运行
docker info >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误: Docker未运行，请先启动Docker Desktop
    pause
    exit /b 1
)

echo 步骤1: 显示清理前的状态...
echo.
echo 系统磁盘使用情况:
wmic logicaldisk get size,freespace,caption /format:table

echo.
echo Docker存储使用情况:
docker system df

echo.
echo Docker镜像:
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}\t{{.CreatedAt}}" | findstr /v "REPOSITORY"

echo.
echo Docker容器:
docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Size}}" | findstr /v "NAMES"

echo.
echo Docker卷:
docker volume ls --format "table {{.Name}}\t{{.Driver}}" | findstr /v "NAME"

echo.
set /p choice="是否继续清理？这将停止所有相关容器并清理大量数据 (y/N): "
if /i not "%choice%"=="y" (
    echo 用户取消操作
    pause
    exit /b 0
)

echo.
echo 步骤2: 停止所有相关容器...
docker-compose -f docker-compose.lightweight.yml down 2>nul
docker-compose -f docker-compose.yml down 2>nul
docker-compose -f docker-compose-novnc.yml down 2>nul

echo.
echo 步骤3: 清理Docker系统...
echo 清理未使用的镜像...
docker image prune -a -f

echo 清理未使用的容器...
docker container prune -f

echo 清理未使用的卷...
docker volume prune -f

echo 清理未使用的网络...
docker network prune -f

echo 清理构建缓存...
docker builder prune -a -f

echo 深度清理Docker系统...
docker system prune -a -f --volumes

echo.
echo 步骤4: 清理特定镜像...
docker rmi ubuntu-desktop:lightweight-xfce-zh 2>nul
docker rmi ubuntu-desktop:xfce-zh 2>nul
docker rmi ubuntu-desktop:lightweight-vnc 2>nul

echo.
echo 步骤5: 清理项目目录...
if exist "user-data" (
    echo 清理用户数据目录...
    rmdir /s /q user-data 2>nul
    mkdir user-data
)

if exist "shared" (
    echo 清理共享文件夹...
    rmdir /s /q shared 2>nul
    mkdir shared
)

echo.
echo 步骤6: 显示清理后的状态...
echo 系统磁盘使用情况:
wmic logicaldisk get size,freespace,caption /format:table

echo.
echo Docker存储使用情况:
docker system df

echo.
echo ================================
echo 清理完成！
echo ================================
echo.
echo 已执行的清理操作：
echo ✅ 停止所有相关容器
echo ✅ 清理Docker镜像、容器、卷、网络
echo ✅ 清理构建缓存
echo ✅ 清理项目目录
echo.
echo 后续建议：
echo 1. 定期运行此脚本清理空间
echo 2. 使用轻量级版本减少空间占用
echo 3. 定期清理不需要的Docker镜像
echo 4. 监控磁盘使用情况
echo.
echo 重新启动服务：
echo   - 轻量级版本: docker-compose -f docker-compose.lightweight.yml up -d
echo   - noVNC版本: start-novnc.sh
echo   - 标准版本: docker-compose up -d
echo.
pause 